﻿package com.tudou.home.common.utils
{
    import flash.display.*;
    import flash.geom.*;

    public class LayoutUtil extends Object
    {

        public function LayoutUtil()
        {
            return;
        }// end function

        public static function layoutAverage(param1:Array, param2:Boolean, param3:Number, param4:Number) : void
        {
            var _loc_11:DisplayObject = null;
            if (param1 == null || param1.length == 0)
            {
                return;
            }
            var _loc_5:* = param2 ? ("x") : ("y");
            var _loc_6:* = param4 - param3;
            var _loc_7:* = param1.length;
            var _loc_8:* = _loc_6 / _loc_7;
            var _loc_9:* = param3;
            var _loc_10:int = 0;
            while (_loc_10 < _loc_7)
            {
                
                _loc_11 = param1[_loc_10] as DisplayObject;
                if (_loc_11)
                {
                    _loc_11[_loc_5] = _loc_9;
                    _loc_9 = _loc_9 + _loc_8;
                }
                _loc_10++;
            }
            return;
        }// end function

        public static function middle(param1:DisplayObject, param2:Boolean, param3:Number) : void
        {
            var _loc_4:* = param2 ? ("width") : ("height");
            var _loc_5:* = param2 ? ("x") : ("y");
            param1[_loc_5] = int((param3 - param1[_loc_4]) / 2);
            return;
        }// end function

        public static function layout(param1:Array, param2:Boolean, param3:Boolean, param4:Number = 0) : void
        {
            var _loc_10:DisplayObject = null;
            if (!param1)
            {
                return;
            }
            var _loc_5:* = param2 ? ("width") : ("height");
            var _loc_6:* = param2 ? ("x") : ("y");
            var _loc_7:Number = -1;
            var _loc_8:int = 0;
            while (_loc_8 < param1.length)
            {
                
                _loc_10 = param1[_loc_8] as DisplayObject;
                if (_loc_10)
                {
                    _loc_7 = Math.max(_loc_7, _loc_10[_loc_5]);
                }
                _loc_8++;
            }
            var _loc_9:* = param4 + _loc_7 / 2 * (param3 ? (1) : (-1));
            layoutMiddle(param1, param2, _loc_9);
            return;
        }// end function

        public static function layoutMatrix(param1:Array, param2:uint, param3:Rectangle) : void
        {
            var _loc_13:int = 0;
            var _loc_14:Array = null;
            var _loc_15:int = 0;
            if (param1 == null || param1.length == 0)
            {
                return;
            }
            var _loc_4:* = param1.length;
            var _loc_5:* = Math.ceil(_loc_4 / param2);
            var _loc_6:* = param3.x;
            var _loc_7:* = param3.x + param3.width;
            var _loc_8:* = param3.y;
            var _loc_9:* = param3.y + param3.height;
            var _loc_10:* = _loc_5 * param2 - _loc_4;
            var _loc_11:int = 0;
            while (_loc_11 < _loc_10)
            {
                
                param1.push(new Shape());
                _loc_11++;
            }
            var _loc_12:int = 0;
            while (_loc_12 < _loc_5)
            {
                
                _loc_13 = _loc_12 * param2;
                layoutAverage(param1.slice(_loc_13, _loc_13 + param2), true, _loc_6, _loc_7);
                _loc_12++;
            }
            _loc_12 = 0;
            while (_loc_12 < param2)
            {
                
                _loc_14 = [];
                _loc_15 = 0;
                while (_loc_15 < _loc_5)
                {
                    
                    _loc_14[_loc_15] = param1[_loc_15 * param2 + _loc_12];
                    _loc_15++;
                }
                layoutAverage(_loc_14, false, _loc_8, _loc_9);
                _loc_12++;
            }
            param1.splice(-1, _loc_10);
            return;
        }// end function

        public static function layoutBetween(param1:Array, param2:Boolean, param3:Number, param4:Number) : void
        {
            var _loc_10:DisplayObject = null;
            var _loc_11:int = 0;
            if (param1 == null || param1.length == 0)
            {
                return;
            }
            var _loc_5:* = param2 ? ("width") : ("height");
            var _loc_6:* = param2 ? ("x") : ("y");
            var _loc_7:* = param4 - param3;
            var _loc_8:* = param1.length;
            var _loc_9:Number = 0;
            while (_loc_11 < _loc_8)
            {
                
                _loc_10 = param1[_loc_11] as DisplayObject;
                if (_loc_10)
                {
                    _loc_9 = _loc_9 + _loc_10[_loc_5];
                }
                _loc_11++;
            }
            var _loc_12:* = (_loc_7 - _loc_9) / _loc_8;
            var _loc_13:* = param3;
            _loc_11 = 0;
            while (_loc_11 < _loc_8)
            {
                
                _loc_10 = param1[_loc_11] as DisplayObject;
                if (_loc_10)
                {
                    _loc_10[_loc_6] = _loc_13;
                    _loc_13 = _loc_13 + (_loc_10[_loc_5] + _loc_12);
                }
                _loc_11++;
            }
            return;
        }// end function

        public static function layoutMiddle(param1:Array, param2:Boolean, param3:Number = 0) : void
        {
            var _loc_7:DisplayObject = null;
            var _loc_8:Number = NaN;
            if (!param1)
            {
                return;
            }
            var _loc_4:* = param2 ? ("width") : ("height");
            var _loc_5:* = param2 ? ("x") : ("y");
            var _loc_6:int = 0;
            while (_loc_6 < param1.length)
            {
                
                _loc_7 = param1[_loc_6] as DisplayObject;
                if (_loc_7)
                {
                    _loc_8 = _loc_7[_loc_4];
                    _loc_7[_loc_5] = param3 - _loc_8 / 2;
                }
                _loc_6++;
            }
            return;
        }// end function

    }
}
